مهندسی معکوس
(قسمت دوم)
مهندسی معکوس در حوزه نرم افزار
در عمل دو نوع عمده از مهندسی معکوس وجود دارد. در حالت اول، سورس کد برای برنامه وجود دارد، اما سطوح بالاتری از جنبه های این برنامه، شاید مستندات ضعیف یا مستنداتی که دیگر اعتبار ندارد، مشاهده می شوند. در حالت دوم، سورس کدی برای برنامه موجود نیست و هرگونه تلاشی در جهت استخراج یک سورس کد ممکن برای نرم افزار به عنوان مهندسی معکوس در نظر گرفته شده است. مهندسی معکوس نرم افزار برای جلوگیری از نقض کپی رایت می تواند از تکنیک طراحی اتاق پاک استفاده کند.
متدولوژی مهندسی معكوس
ایجاد یك روش منطقی و سیستماتیك برای تعیین میزان كمبود اطلاعات فنی برای پشتیبانی از تولید یك محصول و سپس انجام یك كار تیمی منسجم برای تكمیل این اطلاعات، مجموعه عملیاتی است كه در فرایند مهندسی معكوس بوقوع میپیوندد. سطحی از اطلاعات فنی موردنیاز كه كلیه تلاشها در راستای تشخیص میزان كمبود آن و سپس رفع این كمبود اطلاعاتی است، بسته اطلاعات فنی (Technical Data Package) نامیده میشود.
به رغم ظرافت و نیاز به دقت بسیار زیاد در مهندسی معكوس، كاهش زمان عملیات امری بسیار مهم در این زمینه است. در اینجا شرح مختصری از فرایند كلی مهندسی معكوس و متدولوژی آن بیان میكنیم:
مرحله اول – تجزیه و تحلیل عملكردی - اقتصادی:
الف - هدفگذاری و جمعآوری اطلاعات: در این مرحله توسعه محصول، رفع عیب محصول و خودكفایی معرفی و سپس هدف از انجام پروژه درمورد هر یك تبیین میشود. هدف از فاز جمعآوری اطلاعات این است كه كلیه مستندات جمعآوری شده و تولید اطلاعات و مستندات فنی در حین اجرای مهندسی معكوس آسان گردد.
ب - ارزیابی اطلاعات و برنامهریزی: هدف از انجام این فاز، مشخص كردن سطح اطلاعات ناقص موردنیاز و نیز تخمین هزینه انجام مهندسی معكوس است. باتوجه به این سطح تخمین زده شده، برآوردهای اولیه روی تخصصها، آزمایشات، تجهیزات و مواردی ازین دست برای اجرای مهندسی معكوس صورت میگیرد و پس از تخمین هزینه، تخصیص منابع و برآورد زمان معقول برای تولید این اطلاعات در جهت كامل كردن بسته اطلاعات فنی، نمودار گانت اجرایی پروژه ارائه میشود و یك نقشه برای روند كار حاصل میآید.
مرحله دوم - آنالیز عملكرد و دمونتاژ مورد:
هر موردی میتواند متشكل از چند جزء (مكانیسمها و اجزای مختلف) باشد كه هر یك وظیفه خاصی را بر عهده دارند و برایند آنها وظیفه موردنظر را برای مورد بوجود می آورد. در این مرحله از فرایند، تیم مهندسی معكوس باید بتواند پارامترها و مشخصههای مهم ورودی و خروجی هر جزء را شناسایی كند؛ پس از شناسایی اجزاء و ورودی و خروجیهای آن (با استفاده از قضاوت مهندسی، طراحی آزمایشات، شبیهسازی رایانهای و ...) باید عملكرد اجزاء با مدارك فنی موجود ممیزی شود تا مغایرتهای آن مشخص شود (فاز FCA یا ممیزی عملكرد فنی اجزاء).
در ادامه اطلاعات فنی موردنیاز اجزاء از طریق آزمایش استخراج میشود (فاز PCA یا ممیزی فیزیكی اجزاء). تفكیك و مونتاژ اجزاء، در صورتی كه قابلتجزیه به اجزای سطح پایینتر باشند میتواند تا رسیدن به سطح قطعه ادامه یابد تا اینكه یك سطح برای مونتاژ بیان شود. در تفكیك بایـــد وظیفه عملكردی اجزای پایینتر شناسایی شود تا ممیزی عملكرد فنی اجزاء و ممیزی فیزیكی اجزاء بر روی آنها نیز صورت گیرد.
در انتهای این مرحله بستههای اطلاعات فنی كه طی عملیات ممیزی عملكرد فنی اجزاء و ممیزی فیزیكی اجزاء ایجاد و تكمیل شدهاند پس از صحهگذاری، اطلاعات لازم درباره تهیه نقشههای سطح یك (كه چگونگی حركت مكانیسمها و انتقال عملكرد به اجزای دیگر را كاملا مشخص می كنند) را فراهم خواهندآورد.
مرحله سوم - آنالیز سختافزاری و نرمافزاری:
الف) آنالیز مواد: با آنالیز شیمیایی و متالورژیك، مطالعه لایههای سطحی، اندازهگیری خواص مكانیكی، بررسیهای ساختاری و عیوب انجام میگیرد.
ب) بررسی فرایند ساخت: باتوجه به نوع سطوح فیزیكی در قطعه، فرایند ممكن برای تولید این سطوح، بررسی تنشهای سطحی و ساختار میكروسكوپی و اندازه گیری بعضی از ویژگیهای غیـــربحرانی مانند صافی سطح كه به طور فرعی در تشخیص فرایند ساخت كمك می كند، انجام میشود.
ج) آنالیز ابعادی: كه مشتمل بر مراحلی چون اندازهگیری ابعادی، آنالیز تلرانس و آنالیز حساسیت است.
د) آنالیز الكتریكی - الكترونیكی در صورت نیاز: باتوجه به مشخصههای خروجی مدار، مسیر مدارها، مواد، روشهای زدودن پوششها، اتصالات موردنیاز برای تولید مجدد مورد بررسی قرار میگیرند. نتایج حاصل از این قسمت در نقشههای سطح دو ثبت و ترسیم می شوند.
مرحله چهارم - بهبود محصول و آنالیز ارزش:
با استفاده از اطلاعات جدید تهیه شده هنگام فرایند و انجام بازنگری مهندسی ارزشی در كاندیداهای در نظر گرفته شده برای مهندسی معكوس، میتوان برخی از حوزههای پرهزینه مثل عیوب طراحی، طراحی اضافی، عملكرد بهبود، محدودیتهای بیش از حد در مورد تلرانسها، نیازمندیهای بیش از اندازه برای عملكردها و مواردی این چنینی را آشكار و آنها را قبل از تكمیل فرایند اصلاح كرد.
مرحله پنجم - برنامهریزی فرایند تولید و تهیه ملزومات تضمین كیفیت:
در این مرحله كلیه بستههای اطلاعاتی كه تاكنون كامل شده از دیدگاه قابلیت تولید و فرایندهای ساخت موردتوجه قرار میگیرند؛ به طور خلاصه خروجی این مرحله به ایجاد نقشههای سطح سه منجر میشود كه ملزومات ضروری و موردنیاز واحدهای طراحی، مهندسی، ساخت و كنترل كیفیت را برای دستیابی یا ساخت آیتم موردنظر شامل میشود.
به طوركلی نقشههای سطح سه نتیجه فرایند مهندسی معكوس بوده كه شامل كلیه پارامترهای مستندسازی شده لازم جهت تولید یك آیتم خواهند بود و هدف از انجام آن تصدیق و تایید دقت بسته اطلاعات فنی برای پشتیبانی از تولید قطعات است تا از این طریق اطمینان كافی از صحت و دقت و كامل بودن نقشهها و مشخصههای ایجاد شده توسط فرایند مهندسی معكوس حاصل شود.
مرحله ششم - تهیه مستندات نهایی
در هنگام ساخت و تست محصول تولیدی در فاز تولید نمونه، بسیاری از نقشههای مهندسی و رویههای تست چندین بار بازنگری و اصلاح میشوند كه تمام سطوح بازنگری شده از سطح صفر تا آخرین نتایج باید در بسته اطلاعات فنی قرار داده شوند؛ با اضافه شدن اطلاعات بدست آمده از بازرسیها و اطمینان كیفیتِ نمونههای تولید شده به بسته اطلاعات فنی، یك بستـــه اطلاعات فنی كامل شده بدست میآید و پس از مطابقت با استانداردهای بستههای اطلاعات فنی، در انتها یك بسته اطلاعات فنی نهایی كامل در ارتباط با محصول كه هدف فراینـــــد مهندسی معكوس است، بدست میآید.
ادامه دارد...
فرآوری: مریم نایب زاده
بخش دانش وزندگی تبیان
منبع: ieir-reverseeng، catiabook، reverse-engineering